草庐IT

java - 打印的执行顺序

全部标签

javascript - WebWorkers 的执行似乎比主线程慢得多

我一直致力于优化一些长时间运行的JavaScript,并尝试实现WebWorkers。我有一组独立的任务要计算。在我的初始测试中,有80个任务,在主线程上用了250毫秒完成。我认为我可以将任务分配给一些网络worker,并将时间缩短到50毫秒左右。我的数据是嵌套多个类型数组的几何数据结构。我有将所有数据提取到JSON+ArrayBuffer对象数组的方法,因此我可以将传输的数据传递给WebWorker,而无需复制大数组。我已经测试了数据传输,并确认它按预期工作。传输到WebWorker后,我的类型化数组在主线程中为空。我(目前)预先启动了4个WebWorker,以便在需要完成工作时,W

javascript - Node.js setInterval() 在 25 天后停止执行

在我的Node.js应用程序中,我使用setInterval()每1小时运行一次特定函数。该函数正常执行约25天,然后计时器停止触发。25天似乎非常接近Node.js的TIMEOUT_MAX(2^31毫秒≈25天),但我真的不明白为什么setInterval()应该在那之后停止执行。更新:我认为这可能是由Node.js中的以下错误引起的:setIntervalcallbackfunctionunexpectedhalt#22149 最佳答案 似乎错误(#22149)已在Node.js10.9.0中修复。可能还值得注意的是,此错误似乎

javascript - 从浏览器打印时检测背景图像和背景颜色支持

当从浏览器打印页面时,它指的是用media="print"声明的print.css样式表。浏览器禁用了一些CSS规则,如background-image和background-color,一些浏览器有启用它们的选项。如thisanswer中所述,无法从页面代码覆盖此行为。我有两个问题:是否有关于这些打印规则的文档或很好的引用资料?例如:禁用了哪些CSS规则?Javascript可以在打印前在页面上执行某些操作吗?有没有办法用Javascript检测处于打印模式的浏览器,然后制作一个优雅的降级系统? 最佳答案 浏览器如何打印页面有点像

javascript - 像异步 waterfall 一样执行 forEach

我正在尝试通过Node.js脚本使用GoogleAPI从地址列表中检索经度和纬度。调用本身工作正常,但因为我有大约100个地址要提交。我在数组上使用async.forEach,但调用速度太快,我收到错误消息“您已超出此API的速率限制。”我发现调用次数限制为每24小时2500次,每秒最多10次。虽然我可以接受每天2500次,但我的通话速度对于速率限制来说太快了。我现在必须编写一个函数来延迟调用,以免达到限制。这是我的代码示例:async.forEach(final_json,function(item,callback){varpath='/maps/api/geocode/json?

javascript - 如何计算 JavaScript 中异步函数的执行时间?

我想计算异步函数(async/await)在JavaScript中花费了多长时间。可以这样做:constasyncFunc=asyncfunction(){};constbefore=Date.now();asyncFunc().then(()=>{constafter=Date.now();console.log(after-before);});但是,这不起作用,因为promise回调在新的微任务中运行。IE。在asyncFunc()结束和then(()=>{})开始之间,任何已经排队的微任务将首先被触发,它们的执行时间将为考虑在内。例如:constasyncFunc=asyncf

javascript - SetInterval 在多轮执行后创建延迟

我对setInterval的实现有疑问。我创建了一个slider,其中setInterval每隔几秒处理一个函数。我注意到在执行setInterval几分钟和几轮后会产生额外的延迟。请提出这里的问题是什么?$(document).ready(function(){vartotalItems=$('.sliderItem','#slider').length;varcurrentIndex=$('.itemActive').index()+1;varslideTime=3000;functiongoNext(e){$('.sliderItem').eq(e).fadeOut(500);$

javascript - 如何一次执行几个 Ajax 请求

我不太确定这在JavaScript中是否可行,所以我想问一下。:)假设我们有100个请求要完成并且想加快速度。我想做的是:创建一个将启动前5个ajax调用的循环等到它们全部返回(成功-调用一个函数来更新dom/错误)-不确定如何,也许使用全局计数器?重复直到完成所有请求。考虑到浏览器JavaScript不支持线程,我们可以“利用”async功能来做到这一点吗?您认为它行得通吗,或者在JavaScript中这样做存在固有问题? 最佳答案 是的,我以前做过类似的事情。基本流程是:创建一个堆栈来存储您的作业(在本例中为请求)。首先执行3或

javascript - 主干集合保持模型变异的排序顺序

如果我有一个带有比较器的集合。(在CoffeeScript中)classWordsextendsBackbone.collectioncomparator:(word)->word.get('score')如果我正在更改,我如何保持集合排序基础项目的分数。这个想法是将其附加到ListView,其中带有最低分总是在最前面。我一直在对集合手动调用排序每次我改变一个实例,但这似乎不是鉴于整个列表已排序,效率太高有一个项目。我可能会尝试删除变异的项目并且然后再添加。有什么建议吗? 最佳答案 由于一个简单的原因,渲染代码看起来效率非常低:DO

javascript - 在javascript中固定时间后停止执行功能

我需要让函数运行固定的秒数,然后终止。我可以使用jQuery或webworkers,但我尝试这样做直接失败了。感谢帮助,现在可以使用了:startT=newDate().getTime();i=1;while(true){now=newDate().getTime();if((now-startT)>100){break;}i++;}alert(i); 最佳答案 您建议的方法不起作用,因为Javascript(大部分)是单线程的-循环以无限循环开始,因此永远不会调用setTimeout处理程序,所以keepGoing永远不会被设置,

javascript - 是否可以刷新控制台(使其立即打印)?

我使用Firefox+Firebug来编写一些Javascripting。我尝试使用console.log记录的文本不会立即出现在Firebug的控制台中。它似乎堆积在某处的缓冲区中,然后以block的形式刷新到控制台。我有一个函数可以进行一些log调用。有时我只得到第一行,有时-什么都没有。但是,当我刷新页面时,我确实看到了整行。我可以手动刷新控制台日志吗? 最佳答案 简短的回答是否定的。没有同花顺。您可以清除控制台console.clear();但我认为这不是您想要的。这很可能来自代码。如果我们能看到它,我可以通过更好的反馈修改